package com.kaifamiao.map;

import java.util.HashMap;
import java.util.Map;

/**
 * Map接口中的抽象方法
 * 1、V put( K key, V value ) 将指定的值(value)与此映射中的指定键(key)关联
 * 2、V get( Object key ) 根据指定键(key)获得与之关联的值(value)
 * 3、V remove( Object key ) 根据指定键(key)从当前Map集合中删除相应的 键值对(key-value pair)
 * 4、int size() 获得 Map集合 中 键值对(key-value pair) 的个数
 * 5、boolean isEmpty() 判断 Map集合 是否为空
 * 6、void clear() 清空 Map集合
 * 7、boolean containsKey( Object key ) 根据指定键(key)判断Map集合中是否包含对应的键值对
 * 8、boolean containsValue( Object value ) 根据指定值(value)判断Map集合中是否包含对应的键值对
 */
public class MapInstanceMethods1 {

    public static void main(String[] args) {
        // 接口类型的引用变量指向其实现类类型的实例
        Map<String,Double> map = new HashMap<>();

        System.out.println( "size: " + map.size() + ", is empty: " + map.isEmpty() );

        // 将指定的值(12.0)与此映射中的指定键("牛肉面")关联
        Double value = map.put( "牛肉面", 12.0 );
        System.out.println( value );

        value = map.put( "牛肉面" , 13.5 );
        System.out.println( value );

        System.out.println( map );

        value = map.put( "牛肉饺子" , 14.0 );
        System.out.println( value );
        System.out.println( map );

        map.put( "煮蛋", 1.5 );
        System.out.println( map );

        System.out.println( "size: " + map.size() + ", is empty: " + map.isEmpty() );

        Double price = map.get( "牛肉面" );
        System.out.println( price );

        value = map.remove( "牛肉面" );
        System.out.println( value );

        System.out.println( map );

        System.out.println( map.containsKey( "牛肉面" ) );
        System.out.println( map.containsKey( "卤蛋" ) );
        System.out.println( map.containsKey( "煮蛋" ) );

        System.out.println( map.containsValue( 2.0 ) );
        System.out.println( map.containsValue( 1.5 ) );

        map.clear();

        System.out.println( "size: " + map.size() + ", is empty: " + map.isEmpty() );
    }
}
